package com.literaryfamily.literaryfamily.service.operator.root;

import com.literaryfamily.literaryfamily.entity.User;
import com.literaryfamily.literaryfamily.entity.UserRoles;

/**
 * 用户角色接口
 * 所有涉及读写的方法都需要抛出 WriteError 数据库读写错误异常(这个是运行时异常,只需要抛出不需要处理)
 * 此接口所有方法均不检查用户身份,应该验证身份后在进行检查
 * @author 滑稽/因果报应
 */
public interface UserRolesService {
	/**
	 * 新建角色
	 * @param userRoles 完整的角色信息
	 * @return 创建好的角色信息
	 */
	UserRoles addUserRoles(UserRoles userRoles);

	/**
	 * 更新角色信息
	 * @param userRoles 新的角色信息
	 * @return 新的角色信息
	 */
	UserRoles updateUserRoles(UserRoles userRoles);

	/**
	 * 根据角色ID删除角色
	 * @param userRolesId 被删除的ID
	 * @return 被删除的信息
	 */
	UserRoles deleteUserRoles(Long userRolesId);

	/**
	 * 为用户分配角色
	 * @param userId 用户ID
	 * @param userRolesId 被分配的角色ID
	 * @return 分配结果
	 */
	User getUserRoles(Long userId, Long userRolesId);

	/**
	 * 将用户的角色信息回归默认
	 * @param userId 用户ID
	 * @return 分配结果
	 */
	User removeUserRoles(Long userId);
}